import java.util.*;

/**
 * @program: leetcode049
 * @author: JCM
 * @create: 2023-02-20 11:54
 * @description:
 **/
public class Main {

    public List<List<String>> groupAnagrams(String[] strs) {
        // 创建一个 map，key为String,value为 List<String>
        Map<String,List<String>> map = new HashMap<>();
        // 遍历字符串数组
        for(String str : strs) {
            char[] chars = str.toCharArray();
            //将字符排序方便后续在  map  中搜索
            Arrays.sort(chars);
            String sortStr = new String(chars);
            if(map.containsKey(sortStr)) {
                //  map 中存在  sortStr，将 str 存入 List<String> 中
                map.get(sortStr).add(str);
            }else {
                // map 中不存在 sortStr ，创建一个新的 List<String> 并保存到 map中。
                List<String> groupList = new ArrayList<>();
                groupList.add(str);
                map.put(sortStr,groupList);
            }
        }
        return new ArrayList<>(map.values());

    }
}
